/**
*  
* @Function 目录统计服务 
* @ProjectName credit-data-platform 
* @PackageName com.py.credit.service.impl    
* @FileName ContentStatisticsServiceImpl.java    
* @Date 2018年9月19日下午5:50:41
* @Author Min DongXv
* @Copyright (c) 2018, 金电联行 All Rights Reserved.   
*   
*/  
package com.py.credit.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import com.py.credit.dao.ContentStatisticsDao;
import com.py.credit.entity.TypeNumEntity;
import com.py.credit.service.ContentStatisticsService;

/**
 * 
 * @Function 目录统计服务
 * @ClassName ContentStatisticsServiceImpl
 * @Date 2018年9月19日 下午5:50:41
 * @Author Min DongXv
 * 
 */
@Service
public class ContentStatisticsServiceImpl implements ContentStatisticsService {

	@Autowired
	private ContentStatisticsDao contentStatisticsDao;

	/**
	 *
	 * @Function 公共目录数据统计
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName pubContentInfos
	 * @return
	 * @Date 2018年9月19日 下午5:51:04
	 * @Author Min DongXv
	 *
	 */
	@Override
	public List<Map<String, Object>> pubContentInfos() {
		return contentStatisticsDao.pubContentInfos();
	}

	/**
	 *
	 * @Function 信用主体分类统计
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName classifyStatistics
	 * @return
	 * @Date 2018年9月19日 下午5:51:04
	 * @Author Min DongXv
	 *
	 */
	@Override
	public List<Map<String, Object>> classifyStatistics() {
		return contentStatisticsDao.classifyStatistics();
	}

	/**
	 *
	 * @Function 公共目录统计top5
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName contentStatistics
	 * @return
	 * @Date 2018年9月19日 下午5:51:04
	 * @Author Min DongXv
	 *
	 */
	@Override
	public List<Map<String, Object>> contentStatistics(String hasLimit) {
		return contentStatisticsDao.contentStatistics(hasLimit);
	}

	/**
	 *
	 * @Function 公共目录详情
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName pubContentDetail
	 * @param deptId
	 * @return
	 * @Date 2018年9月19日 下午5:51:04
	 * @Author Min DongXv
	 *
	 */
	@Override
	public List<Map<String, Object>> pubContentDetail(Integer deptId) {
		return contentStatisticsDao.pubContentDetail(deptId);
	}

	/**
	 *
	 * @Function 信用信息目录统计
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName pubContentStatistics
	 * @return
	 * @Date 2018年9月20日 下午3:15:29
	 * @Author Min DongXv
	 *
	 */
	@Override
	public List<Map<String, Object>> pubContentStatistics() {
		return contentStatisticsDao.pubContentStatistics();
	}

	/**
	 *
	 * @Function 目录公开范围统计
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName contentTypeStatistics
	 * @return
	 * @Date 2018年9月20日 下午3:15:29
	 * @Author Min DongXv
	 *
	 */
	@Override
	public List<TypeNumEntity> contentTypeStatistics() {
		return contentStatisticsDao.contentTypeStatistics();
	}

	/**
	 *
	 * @Function 目录更新频率统计
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName contentFrequencyStatistics
	 * @return
	 * @Date 2018年9月20日 下午3:15:29
	 * @Author Min DongXv
	 *
	 */
	@Override
	public List<TypeNumEntity> contentFrequencyStatistics() {
		return contentStatisticsDao.contentFrequencyStatistics();
	}

	/**
	 *
	 * @Function 订阅目录统计
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName subContentStatistics
	 * @return
	 * @Date 2018年9月20日 下午3:15:29
	 * @Author Min DongXv
	 *
	 */
	@Override
	public List<Map<String, Object>> subContentStatistics() {
		return contentStatisticsDao.subContentStatistics();
	}

	/**
	 * 
	 *
	 * @Function 目录统计
	 * @FileName ContentStatisticsServiceImpl.java
	 * @MethodName allContentStatistics
	 * @return
	 * @Date 2018年9月20日 下午4:40:20
	 * @Author Min DongXv
	 *
	 */
	@Override
	public Map<String, Object> allContentStatistics() {
		Map<String, Object> data = new HashMap<String, Object>(7);
		// 信用信息目录饼图
		List<Map<String, Object>> pubContentStatistics = contentStatisticsDao.pubContentStatistics();
		// 订阅信用信息目录
		List<Map<String, Object>> subContentStatistics = contentStatisticsDao.subContentStatistics();
		// 各部门公共目录统计
		List<Map<String, Object>> contentStatistics = contentStatisticsDao.contentStatistics(null);
		// 目录公开范围统计
		List<TypeNumEntity> contentTypeStatistics = contentStatisticsDao.contentTypeStatistics();
		Map<String, Object> contentTypes = new HashMap<String, Object>(3) {
			private static final long serialVersionUID = -8135586173384267258L;
			{
				put("P", 0);
				put("S", 0);
				put("A", 0);
			}
		};
		if (!CollectionUtils.isEmpty(contentTypeStatistics)) {
			for (TypeNumEntity entity : contentTypeStatistics) {
				if (null != entity) {
					contentTypes.put(entity.getType(), entity.getNum());
				}
			}
		}
		// 目录更新频率统计
		List<TypeNumEntity> contentFrequencyStatistics = contentStatisticsDao.contentFrequencyStatistics();
		Map<String, Object> contentFrequencys = new HashMap<String, Object>(6) {
			private static final long serialVersionUID = -8135586173384267258L;
			{
				put("S", 0);
				put("D", 0);
				put("W", 0);
				put("M", 0);
				put("Q", 0);
				put("Y", 0);
			}
		};
		if (!CollectionUtils.isEmpty(contentFrequencyStatistics)) {
			for (TypeNumEntity entity : contentFrequencyStatistics) {
				if (null != entity) {
					contentFrequencys.put(entity.getType(), entity.getNum());
				}
			}
		}
		data.put("pubContent", pubContentStatistics);
		data.put("subContent", subContentStatistics);
		data.put("content", contentStatistics);
		data.put("contentType", contentTypes);
		data.put("contentFrequency", contentFrequencys);
		return data;
	}
}
